7520cd95b083c5eb5afd6df3751224195f858449,src/com/opencms/workplace/CmsAdminModuleCreate.java,CmsAdminModuleCreate,getContent,#CmsObject#String#String#Hashtable#String#,88
Before Change
tryToCreateFolder(cms, modulePath, "language");
tryToCreateFolder(cms, modulePath + "language/", I_CmsWpConstants.C_DEFAULT_LANGUAGE);
// tryToCreateFolder(cms, modulePath + "language/", "de");
tryToCreateFolder(cms, modulePath, "doc");
reg.setModuleDocumentPath(packetname, modulePath + "doc/index.html");
if("checked".equals(view)) {
reg.setModuleView(packetname, packetname.replace('.', '_') + ".view", modulePath + "view/index.html");
After Change
* @param parameters Hashtable with all template class parameters.
* @param templateSelector template section that should be processed.
*/
public byte[] getContent(CmsObject cms, String templateFile, String elementName, Hashtable parameters, String templateSelector) throws CmsException {
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging() && C_DEBUG) {
A_OpenCms.log(C_OPENCMS_DEBUG, this.getClassName() + "getting content of element " + ((elementName == null) ? "<root>" : elementName));
A_OpenCms.log(C_OPENCMS_DEBUG, this.getClassName() + "template file is: " + templateFile);
A_OpenCms.log(C_OPENCMS_DEBUG, this.getClassName() + "selected template section is: " + ((templateSelector == null) ? "<default>" : templateSelector));
}
CmsXmlTemplateFile templateDocument = getOwnTemplateFile(cms, templateFile, elementName, parameters, templateSelector);
//CmsRequestContext reqCont = cms.getRequestContext();
I_CmsRegistry reg = cms.getRegistry();
I_CmsSession session = cms.getRequestContext().getSession(true);
String step = (String)parameters.get(C_STEP);
SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("dd.MM.yyyy");
if((step == null) || "".equals(step)) {
templateDocument.setData(C_PACKETNAME, "");
templateDocument.setData(C_VERSION, "1");
templateDocument.setData(C_MODULENAME, "");
templateDocument.setData(C_DESCRIPTION, "");
templateDocument.setData(C_VIEW, "");
templateDocument.setData(C_ADMINPOINT, "");
templateDocument.setData(C_MAINTENANCE, "");
templateDocument.setData(C_AUTHOR, "");
templateDocument.setData(C_EMAIL, "");
templateDocument.setData(C_MODULE_TYPE, "checked");
// set the current date:
templateDocument.setData(C_DATE, dateFormat.format(new Date()));
}else {
if("OK".equals(step) || "Ok".equals(step)) {
String packagename = (String)parameters.get(C_PACKETNAME);
String modulename = (String)parameters.get(C_MODULENAME);
String version = (String)parameters.get(C_VERSION);
String description = (String)parameters.get(C_DESCRIPTION);
String view = (String)parameters.get(C_VIEW);
String adminpoint = (String)parameters.get(C_ADMINPOINT);
String maintenance = (String)parameters.get(C_MAINTENANCE);
String author = (String)parameters.get(C_AUTHOR);
String email = (String)parameters.get(C_EMAIL);
String createDate = (String)parameters.get(C_DATE);
String moduleType = (String)parameters.get(C_MODULE_TYPE);
boolean moduleExists = reg.moduleExists(packagename);
int v = -1;
try {
v = Integer.parseInt(version);
}catch(Exception e) {
}
if((!checkName(packagename)) || (version == null) || ("".equals(version)) || moduleExists || (v < 0)) {
Hashtable sessionData = new Hashtable();
sessionData.put(C_MODULENAME, getStringValue(modulename));
sessionData.put(C_VERSION, getStringValue(version));
sessionData.put(C_DESCRIPTION, getStringValue(description));
sessionData.put(C_VIEW, getStringValue(view));
sessionData.put(C_ADMINPOINT, getStringValue(adminpoint));
sessionData.put(C_MAINTENANCE, getStringValue(maintenance));
sessionData.put(C_AUTHOR, getStringValue(author));
sessionData.put(C_EMAIL, getStringValue(email));
sessionData.put(C_DATE, getStringValue(createDate));
sessionData.put(C_MODULE_TYPE, getStringValue(moduleType));
session.putValue(C_SESSION_DATA, sessionData);
if(moduleExists) {
templateSelector = "errorexists";
}else {
templateSelector = "errornoname";
}
}else {
tryToCreateFolder(cms, "/system/", "modules");
// create the module (first test if we are in a project including /system/
try {
cms.createResource(C_VFS_PATH_MODULES, packagename, C_TYPE_FOLDER_NAME);
}catch(CmsException e) {
if(e.getType() != e.C_FILE_EXISTS) {
// couldn't create Module
templateDocument.setData("details", Utils.getStackTrace(e));
return startProcessing(cms, templateDocument, elementName, parameters, "errorProject");
}else {
try {
cms.readFolder(C_VFS_PATH_MODULES + packagename + "/");
}catch(CmsException ex) {
// folder exist but is deleted
templateDocument.setData("details", "Sorry, you have to publish this Project and create a new one.\n" + Utils.getStackTrace(e));
return startProcessing(cms, templateDocument, elementName, parameters, "errorProject");
}
}
}
long createDateLong = 0;
try {
createDateLong = dateFormat.parse(createDate).getTime();
}catch(Exception exc) {
createDateLong = (new Date()).getTime();
}
reg.createModule(packagename, getStringValue(modulename), getStringValue(description), getStringValue(author), createDateLong, v);
reg.setModuleAuthorEmail(packagename, getStringValue(email));
reg.setModuleMaintenanceEventClass(packagename, getStringValue(maintenance));
boolean isSimpleModule = false;
if (moduleType!=null && moduleType.equals("checked")) {
reg.setModuleType( packagename, CmsRegistry.C_MODULE_TYPE_SIMPLE );
isSimpleModule = true;
} else {
reg.setModuleType( packagename, CmsRegistry.C_MODULE_TYPE_TRADITIONAL );
}
/*
// Moduldemo folder is deprecated since 5.0 beta 2
tryToCreateFolder(cms, "/", "moduledemos");
tryToCreateFolder(cms, "/moduledemos/", packetname);
*/
String modulePath = C_VFS_PATH_MODULES + packagename + "/";
// as default dont export any module data
cms.writeProperty(modulePath, C_PROPERTY_EXPORT, "false");
// create the class folder:
tryToCreateFolder(cms, modulePath, "classes");
// create all package folders beneth class folder
Vector cFolders = new Vector();
String workString = packagename;
while(workString.lastIndexOf('.') > -1) {
cFolders.addElement(workString.substring(workString.lastIndexOf('.') + 1));
workString = workString.substring(0, workString.lastIndexOf('.'));
}
tryToCreateFolder(cms, modulePath+"classes/", workString);
workString = modulePath + "classes/" + workString + "/";
for(int i = cFolders.size() - 1;i >= 0;i--) {
tryToCreateFolder(cms, workString, (String)cFolders.elementAt(i));
workString = workString + (String)cFolders.elementAt(i) + "/";
}
// create the lib folder, will get exportet to the "real" file system
tryToCreateFolder(cms, modulePath, "lib");
// create the templates folder
tryToCreateFolder(cms, modulePath, I_CmsWpConstants.C_VFS_DIR_TEMPLATES);
// create the "default_bodies" folder
tryToCreateFolder(cms, modulePath, I_CmsWpConstants.C_VFS_DIR_DEFAULTBODIES);
// crate "elements" folder
tryToCreateFolder(cms, modulePath, "elements");
if (isSimpleModule) {
// simple module type
reg.setModuleDocumentPath(packagename, modulePath + "index.html");
} else {
// traditional module type, create more directories
tryToCreateFolder(cms, modulePath, "contenttemplates");
tryToCreateFolder(cms, modulePath, "frametemplates");
tryToCreateFolder(cms, modulePath, "doc");
reg.setModuleDocumentPath(packagename, modulePath + "doc/index.html");
}
// initialize if we need a 'locales' subdirectory in our new module
boolean needsLocaleDir = !isSimpleModule;
if("checked".equals(view)) {
reg.setModuleView(packagename, packagename.replace('.', '_') + ".view", modulePath + "view/index.html");
tryToCreateFolder(cms, modulePath, "view");
needsLocaleDir = true;
}
if("checked".equals(adminpoint)) {
tryToCreateFolder(cms, modulePath, "administration");
// create "pics" folder (required for workplace extension images)
tryToCreateFolder(cms, modulePath, "pics");
needsLocaleDir = true;
}
if (needsLocaleDir) {
// create "locales" folder (required for workplace extension resource files)
tryToCreateFolder(cms, modulePath, I_CmsWpConstants.C_VFS_DIR_LOCALES);
tryToCreateFolder(cms, modulePath + I_CmsWpConstants.C_VFS_DIR_LOCALES, I_CmsWpConstants.C_DEFAULT_LANGUAGE);